From fbc3c1494f1c2aee28784727ec6d0c57ae1d7806 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 5 Jun 2014 18:07:32 -0400 Subject: [PATCH] widget-factory: Show some 'standard' dialog types Add examples for the types of dialog that are mentioned in the GNOME HIG: information dialogs, action dialogs and preference dialogs. --- demos/widget-factory/widget-factory.c | 33 ++++++++- demos/widget-factory/widget-factory.ui | 93 ++++++++++++++++++++++++++ 2 files changed, 125 insertions(+), 1 deletion(-) diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c index 0be65c7b10..d426725ca7 100644 --- a/demos/widget-factory/widget-factory.c +++ b/demos/widget-factory/widget-factory.c @@ -269,12 +269,25 @@ info_bar_response (GtkWidget *infobar, gint response_id) gtk_widget_hide (infobar); } +static void +show_dialog (GtkWidget *button, GtkWidget *dialog) +{ + gtk_widget_show (dialog); +} + +static void +close_dialog (GtkWidget *dialog) +{ + gtk_widget_hide (dialog); +} + static void activate (GApplication *app) { GtkBuilder *builder; GtkWindow *window; GtkWidget *widget; + GtkWidget *dialog; GtkAdjustment *adj; static GActionEntry win_entries[] = { { "dark", NULL, NULL, "false", change_theme_state }, @@ -282,9 +295,12 @@ activate (GApplication *app) { "search", activate_search, NULL, NULL, NULL }, { "delete", activate_delete, NULL, NULL, NULL } }; + GError *error = NULL; builder = gtk_builder_new (); - gtk_builder_add_from_resource (builder, "/ui/widget-factory.ui", NULL); + gtk_builder_add_from_resource (builder, "/ui/widget-factory.ui", &error); + if (error) + g_print ("error: %s\n", error->message); gtk_builder_add_callback_symbol (builder, "on_entry_icon_release", (GCallback)on_entry_icon_release); gtk_builder_connect_signals (builder, NULL); @@ -320,6 +336,21 @@ activate (GApplication *app) g_signal_connect (widget, "response", G_CALLBACK (info_bar_response), NULL); g_object_set_data (G_OBJECT (window), "infobar", widget); + dialog = (GtkWidget *)gtk_builder_get_object (builder, "info_dialog"); + g_signal_connect (dialog, "response", G_CALLBACK (close_dialog), NULL); + widget = (GtkWidget *)gtk_builder_get_object (builder, "info_dialog_button"); + g_signal_connect (widget, "clicked", G_CALLBACK (show_dialog), dialog); + + dialog = (GtkWidget *)gtk_builder_get_object (builder, "action_dialog"); + g_signal_connect (dialog, "response", G_CALLBACK (close_dialog), NULL); + widget = (GtkWidget *)gtk_builder_get_object (builder, "action_dialog_button"); + g_signal_connect (widget, "clicked", G_CALLBACK (show_dialog), dialog); + + dialog = (GtkWidget *)gtk_builder_get_object (builder, "preference_dialog"); + g_signal_connect (dialog, "response", G_CALLBACK (close_dialog), NULL); + widget = (GtkWidget *)gtk_builder_get_object (builder, "preference_dialog_button"); + g_signal_connect (widget, "clicked", G_CALLBACK (show_dialog), dialog); + gtk_widget_show_all (GTK_WIDGET (window)); g_object_unref (builder); diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui index d1870758a3..1d8a50cd28 100644 --- a/demos/widget-factory/widget-factory.ui +++ b/demos/widget-factory/widget-factory.ui @@ -2693,6 +2693,24 @@ Suspendisse feugiat quam quis dolor accumsan cursus. + + + True + Inform + + + + + True + Act + + + + + True + Configure + + @@ -2708,6 +2726,81 @@ Suspendisse feugiat quam quis dolor accumsan cursus. + + window + True + Do something? + If you do something, +bad things might happen. + + + True + Cancel + + + + + True + Do It + + + + cancel_info_dialog + doit_info_dialog + + + + window + True + 1 + Action + + + + + True + 20 + Bla bla bla + + + + + + + True + Cancel + + + + + True + True + True + Action + + + + cancel_action_dialog + act_action_dialog + + + + window + True + 1 + Properties + + + + + True + 20 + Bla bla bla + + + + + vertical -- 2.30.2